GskGLRenderer *self = GSK_GL_RENDERER (gobject);
g_clear_pointer (&self->render_ops, g_array_unref);
+ ops_free (&self->op_builder);
G_OBJECT_CLASS (gsk_gl_renderer_parent_class)->dispose (gobject);
}
}
}
+void
+ops_free (RenderOpBuilder *builder)
+{
+ int i;
+
+ for (i = 0; i < GL_N_PROGRAMS; i ++)
+ {
+ gsk_transform_unref (builder->program_state[i].modelview);
+ }
+}
+
void
ops_set_program (RenderOpBuilder *builder,
const Program *program)
op.op = OP_CHANGE_MODELVIEW;
gsk_transform_to_matrix (builder->current_modelview, &op.modelview);
g_array_append_val (builder->render_ops, op);
+ gsk_transform_unref (program_state->modelview);
program_state->modelview = gsk_transform_ref (builder->current_modelview);
}
int width,
int height);
void ops_init (RenderOpBuilder *builder);
+void ops_free (RenderOpBuilder *builder);
void ops_push_debug_group (RenderOpBuilder *builder,
const char *text);
void ops_pop_debug_group (RenderOpBuilder *builder);